- **Generalização e Especialização**: Modelando hierarquias com "é um(a)".
- **Agregação**: Tratando um relacionamento como uma única entidade.
- **Entidades Fracas**: Entidades que dependem de outras para existir.
```mermaid erDiagram FUNCIONARIO |o--o{ FUNCIONARIO : "supervisiona" ```
```mermaid erDiagram PEDIDO }o--o{ PRODUTO : contém ```
```mermaid erDiagram PEDIDO ||--|{ ITEM_PEDIDO : "contém" PRODUTO ||--|{ ITEM_PEDIDO : "é parte de" ITEM_PEDIDO { int id_pedido FK int id_produto FK int quantidade float preco_unitario } ```
--- # 4. Entidades Fracas Uma entidade fraca depende de uma entidade forte para sua identificação. Em Crow's Foot, isso é representado por um **relacionamento de identificação**, onde a linha do lado da entidade fraca é sólida. **Exemplo**: `ITEM_PEDIDO` e `PEDIDO`. - Um `ITEM_PEDIDO` não existe sem um `PEDIDO`. - A chave de `ITEM_PEDIDO` depende da chave de `PEDIDO`. ```mermaid erDiagram PEDIDO ||--|{ ITEM_PEDIDO : "possui" PEDIDO { int id PK datetime data } ITEM_PEDIDO { int id_pedido FK int numero_item string id_produto FK } ``` *O relacionamento `possui` é de identificação, pois `ITEM_PEDIDO` não pode existir sem `PEDIDO`.*
3. **Generalização/Especialização**: Desenhe o diagrama Crow's Foot para a situação: - Uma `CONTA_BANCARIA` pode ser `CONTA_CORRENTE` ou `CONTA_POUPANCA`. - Toda conta tem `numero`, `agencia` e `saldo`. - `CONTA_CORRENTE` tem `limite_cheque_especial`. - `CONTA_POUPANCA` tem `taxa_rendimento`. 4. **Entidade Fraca**: Por que `ITEM_PEDIDO` é um bom exemplo de entidade fraca em relação a `PEDIDO`? Desenhe o diagrama Crow's Foot apenas para essas duas entidades, destacando o relacionamento de identificação.
--- # 3. Generalização e Especialização (Herança) A notação de Crow's Foot representa herança com uma linha que se ramifica da superclasse para as subclasses. **Exemplo**: `PESSOA` é a superclasse de `CLIENTE` e `FUNCIONÁRIO`. ```mermaid erDiagram PESSOA { int id PK string nome string cpf } CLIENTE { int id_pessoa FK float limite_credito } FUNCIONARIO { int id_pessoa FK float salario } PESSOA ||--o| CLIENTE : "é um" PESSOA ||--o| FUNCIONARIO : "é um" ``` *Tanto `CLIENTE` quanto `FUNCIONARIO` herdam os atributos de `PESSOA`.*